package br.com.gr.jcash.dao;

import br.com.gr.jcash.dmp.Usuario;
import br.com.gr.jcash.exception.JCashException;
import java.util.List;

public interface IDAO<T, ID> {

    void incluir(T objeto) throws JCashException;

    T atualizar(T objeto) throws JCashException;

    void remover(T objeto) throws JCashException;

    T buscarPorId(ID id) throws JCashException;
    
    List<T> buscarTodos(Usuario usuario) throws JCashException;
    
    List<T> buscarPorFaixa(Usuario usuario, int[] faixa) throws JCashException;
    
    Long count(Usuario usuario) throws JCashException;
}
